Distributed computing systems may host a variety of applications and services. Typically, a distributed computing system may comprise a large and heterogeneous mixture of computing devices. Each individual computing node may operate a number of these applications and services. The computing demands placed upon each computing node may vary, depending on the nature of the application or service. Moreover, these demands may evolve over time.
One issue that may arise in the operation of a distributed computing system is identifying computing devices suitable for hosting a requested application or service. Typical approaches to this issue may involve identifying a least-burdened computing device and assigning to it responsibility for hosting a new application or service